package com.tdd;

import java.math.BigDecimal;

public class RpnCalculator {
	private HpStack values = new HpStack();
	private OperationFactory operationFactory;

	public RpnCalculator() {
		operationFactory = new OperationFactory();
	}
	
	public RpnCalculator(OperationFactory factory) {
		operationFactory = factory;
	}
	
	public BigDecimal peek() {
		return values.peek();
	}

	public void push(BigDecimal value) {
		values.push(value);
	}

	public BigDecimal pop() {
		return values.pop();
	}

	public void execute(String operatorName) {
		Operation op = operationFactory.findOperationNamed(operatorName);
		op.operate(values);
	}
}
